package data.email;

import data.Document;
import data.Seed;
import java.io.File;
import java.util.ArrayList;

/**
 * EmailSeed adalah seed untuk database dokumen berupa email seed mewakili
 * sebuah folder, next seed adalah folder anak dan dokumen yang diekstrak dari
 * seed adalah dokumen yang berada persis dalam folder
 *
 * @author Robert Gunawan
 */
public class EmailSeed implements Seed {

    /**
     * referensi ke folder seed
     */
    private File folderSeed;

    /**
     * konstruktor dengan parameter folder path
     *
     * @param filepath path ke folder seed
     */
    public EmailSeed(String filepath) {
        folderSeed = new File(filepath);
    }

    @Override
    public ArrayList<Seed> getNextSeeds() {
        ArrayList<Seed> result = new ArrayList<Seed>();
        if (folderSeed.isDirectory()) {
            File[] files = folderSeed.listFiles();
            for (File file : files) {
                if (file.isDirectory()) {
                    EmailSeed seed = new EmailSeed(file.getAbsolutePath());
                    result.add(seed);
                }
            }
        }
        return result;
    }

    @Override
    public ArrayList<Document> getDocuments() {
        ArrayList<Document> result = new ArrayList<Document>();
        if (folderSeed.isDirectory()) {
            File[] files = folderSeed.listFiles();
            for (File file : files) {
                if (file.isFile()) {
                    EmailDocument document = new EmailDocument(file.getAbsolutePath());
                    result.add(document);
                }
            }
        }
        return result;
    }

    @Override
    public String getSeedName() {
        return this.folderSeed.getName();
    }

    @Override
    public String toString() {
        return this.getSeedName();
    }
}